home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / emacs.lha / emacs-19.16 / etc / INTERVIEW < prev    next >
Text File  |  1987-09-16  |  25KB  |  435 lines

  1.  
  2.                GNU'S NOT UNIX
  3.  
  4.          Conducted by David Betz and Jon Edwards
  5.  
  6.           Richard Stallman discusses his public-domain
  7.             UNIX-compatible software system
  8.                with BYTE editors
  9.                   (July 1986)
  10.  
  11. Copyright (C) 1986 Richard Stallman.  Permission is granted to make and
  12. distribute copies of this article as long as the copyright and this notice
  13. appear on all copies.
  14.  
  15. Richard Stallman has undertaken probably the most ambitious free software
  16. development project to date, the GNU system.  In his GNU Manifesto,
  17. published in the March 1985 issue of Dr. Dobb's Journal, Stallman described
  18. GNU as a "complete Unix-compatible software system which I am writing so
  19. that I can give it away free to everyone who can use it...  Once GNU is
  20. written, everyone will be able to obtain good system software free, just
  21. like air."  (GNU is an acronym for GNU's Not UNIX; the "G" is pronounced.)
  22.  
  23.    Stallman is widely known as the author of EMACS, a powerful text editor
  24. that he developed at the MIT Artificial Intelligence Laboratory.  It is no
  25. coincidence that the first piece of software produced as part of the GNU
  26. project was a new implementation of EMACS.  GNU EMACS has already achieved a
  27. reputation as one of the best implementations of EMACS currently available
  28. at any price.
  29.  
  30. BYTE: We read your GNU Manifesto in the March 1985 issue of Dr. Dobb's.
  31. What has happened since?  Was that really the beginning, and how have you
  32. progressed since then?
  33.  
  34. Stallman: The publication in Dr. Dobb's wasn't the beginning of the
  35. project.  I wrote the GNU Manifesto when I was getting ready to start the
  36. project, as a proposal to ask computer manufacturers for funding.  They
  37. didn't want to get involved, and I decided that rather than spend my time
  38. trying to pursue funds, I ought to spend it writing code.  The manifesto was
  39. published about a year and a half after I had written it, when I had barely
  40. begun distributing the GNU EMACS.  Since that time, in addition to making
  41. GNU EMACS more complete and making it run on many more computers, I have
  42. nearly finished the optimizing C compiler and all the other software that
  43. is needed for running C programs.  This includes a source-level debugger
  44. that has many features that the other source-level debuggers on UNIX don't
  45. have.  For example, it has convenience variables within the debugger so you
  46. can save values, and it also has a history of all the values that you have
  47. printed out, making it tremendously easier to chase around list structures.
  48.  
  49. BYTE: You have finished an editor that is now widely distributed and you
  50. are about to finish the compiler.
  51.  
  52. Stallman: I expect that it will be finished this October.
  53.  
  54. BYTE: What about the kernel?
  55.  
  56. Stallman: I'm currently planning to start with the kernel that was written
  57. at MIT and was released to the public recently with the idea that I would
  58. use it.  This kernel is called TRIX; it's based on remote procedure call.  I
  59. still need to add compatibility for a lot of the features of UNIX which it
  60. doesn't have currently.  I haven't started to work on that yet.  I'm
  61. finishing the compiler before I go to work on the kernel.  I am also going
  62. to have to rewrite the file system.  I intend to make it failsafe just by
  63. having it write blocks in the proper order so that the disk structure is
  64. always consistent.  Then I want to add version numbers.  I have a complicated
  65. scheme to reconcile version numbers with the way people usually use UNIX.
  66. You have to be able to specify filenames without version numbers, but you
  67. also have to be able to specify them with explicit version numbers, and
  68. these both need to work with ordinary UNIX programs that have not been
  69. modified in any way to deal with the existence of this feature.  I think I
  70. have a scheme for doing this, and only trying it will show me whether it
  71. really does the job.
  72.  
  73. BYTE: Do you have a brief description you can give us as to how GNU as a
  74. system will be superior to other systems?  We know that one of your goals is
  75. to produce something that is compatible with UNIX.  But at least in the area
  76. of file systems you have already said that you are going to go beyond UNIX
  77. and produce something that is better.
  78.  
  79. Stallman: The C compiler will produce better code and run faster.  The
  80. debugger is better.  With each piece I may or may not find a way to improve
  81. it.  But there is no one answer to this question.  To some extent I am
  82. getting the benefit of reimplementation, which makes many systems much
  83. better.  To some extent it's because I have been in the field a long time
  84. and worked on many other systems.  I therefore have many ideas to bring to
  85. bear.  One way in which it will be better is that practically everything in
  86. the system will work on files of any size, on lines of any size, with any
  87. characters appearing in them.  The UNIX system is very bad in that regard.
  88. It's not anything new as a principle of software engineering that you
  89. shouldn't have arbitrary limits.  But it just was the standard practice in
  90. writing UNIX to put those in all the time, possibly just because they were
  91. writing it for a very small computer.  The only limit in the GNU system is
  92. when your program runs out of memory because it tried to work on too much
  93. data and there is no place to keep it all.
  94.  
  95. BYTE: And that isn't likely to be hit if you've got virtual memory.  You may
  96. just take forever to come up with the solution.
  97.  
  98. Stallman: Actually these limits tend to hit in a time long before you take
  99. forever to come up with the solution.
  100.  
  101. BYTE: Can you say something about what types of machines and environments
  102. GNU EMACS in particular has been made to run under?  It's now running on
  103. VAXes; has it migrated in any form to personal computers?
  104.  
  105. Stallman: I'm not sure what you mean by personal computers.  For example, is
  106. a Sun a personal computer?  GNU EMACS requires at least a megabyte of
  107. available memory and preferably more.  It is normally used on machines that
  108. have virtual memory.  Except for various technical problems in a few C
  109. compilers, almost any machine with virtual memory and running a fairly
  110. recent version of UNIX will run GNU EMACS, and most of them currently do.
  111.  
  112. BYTE: Has anyone tried to port it to Ataris or Macintoshes?
  113.  
  114. Stallman: The Atari 1040ST still doesn't have quite enough memory.  The next
  115. Atari machine, I expect, will run it.  I also think that future Ataris will
  116. have some forms of memory mapping.  Of course, I am not designing the
  117. software to run on the kinds of computers that are prevalent today.  I knew
  118. when I started this project it was going to take a few years.  I therefore
  119. decided that I didn't want to make a worse system by taking on the
  120. additional challenge of making it run in the currently constrained
  121. environment.  So instead I decided I'm going to write it in the way that
  122. seems the most natural and best.  I am confident that in a couple of years
  123. machines of sufficient size will be prevalent.  In fact, increases in memory
  124. size are happening so fast it surprises me how slow most of the people are
  125. to put in virtual memory; I think it is totally essential.
  126.  
  127. BYTE: I think people don't really view it as being necessary for
  128. single-user machines.
  129.  
  130. Stallman: They don't understand that single user doesn't mean single
  131. program.  Certainly for any UNIX-like system it's important to be able to
  132. run lots of different processes at the same time even if there is only one
  133. of you.  You could run GNU EMACS on a nonvirtual-memory machine with enough
  134. memory, but you couldn't run the rest of the GNU system very well or a UNIX
  135. system very well.
  136.  
  137. BYTE: How much of LISP is present in GNU EMACS?  It occurred to me that it
  138. may be useful to use that as a tool for learning LISP.
  139.  
  140. Stallman: You can certainly do that.  GNU EMACS contains a complete,
  141. although not very powerful, LISP system.  It's powerful enough for writing
  142. editor commands.  It's not comparable with, say, a Common LISP System,
  143. something you could really use for system programming, but it has all the
  144. things that LISP needs to have.
  145.  
  146. BYTE: Do you have any predictions about when you would be likely to
  147. distribute a workable environment in which, if we put it on our machines or
  148. workstations, we could actually get reasonable work done without using
  149. anything other than code that you distribute?
  150.  
  151. Stallman: It's really hard to say.  That could happen in a year, but of
  152. course it could take longer.  It could also conceivably take less, but
  153. that's not too likely anymore.  I think I'll have the compiler finished in a
  154. month or two.  The only other large piece of work I really have to do is in
  155. the kernel.  I first predicted GNU would take something like two years, but
  156. it has now been two and a half years and I'm still not finished.  Part of
  157. the reason for the delay is that I spent a lot of time working on one
  158. compiler that turned out to be a dead end.  I had to rewrite it completely.
  159. Another reason is that I spent so much time on GNU EMACS.  I originally
  160. thought I wouldn't have to do that at all.
  161.  
  162. BYTE: Tell us about your distribution scheme.
  163.  
  164. Stallman: I don't put software or manuals in the public domain, and the
  165. reason is that I want to make sure that all the users get the freedom to
  166. share.  I don't want anyone making an improved version of a program I wrote
  167. and distributing it as proprietary.  I don't want that to ever be able to
  168. happen.  I want to encourage the free improvements to these programs, and
  169. the best way to do that is to take away any temptation for a person to make
  170. improvements nonfree.  Yes, a few of them will refrain from making
  171. improvements, but a lot of others will make the same improvements and
  172. they'll make them free.
  173.  
  174. BYTE: And how do you go about guaranteeing that?
  175.  
  176. Stallman: I do this by copyrighting the programs and putting on a notice
  177. giving people explicit permission to copy the programs and change them but
  178. only on the condition that they distribute under the same terms that I
  179. used, if at all.  You don't have to distribute the changes you make to any
  180. of my programs--you can just do it for yourself, and you don't have to give
  181. it to anyone or tell anyone.  But if you do give it to someone else, you
  182. have to do it under the same terms that I use.
  183.  
  184. BYTE: Do you obtain any rights over the executable code derived from the C
  185. compiler?
  186.  
  187. Stallman: The copyright law doesn't give me copyright on output from the
  188. compiler, so it doesn't give me a way to say anything about that, and in
  189. fact I don't try to.  I don't sympathize with people developing proprietary
  190. products with any compiler, but it doesn't seem especially useful to try to
  191. stop them from developing them with this compiler, so I am not going to.
  192.  
  193. BYTE: Do your restrictions apply if people take pieces of your code to
  194. produce other things as well?
  195.  
  196. Stallman: Yes, if they incorporate with changes any sizable piece.  If it
  197. were two lines of code, that's nothing; copyright doesn't apply to that.
  198. Essentially, I have chosen these conditions so that first there is a
  199. copyright, which is what all the software hoarders use to stop everybody
  200. from doing anything, and then I add a notice giving up part of those
  201. rights.  So the conditions talk only about the things that copyright applies
  202. to.  I don't believe that the reason you should obey these conditions is
  203. because of the law.  The reason you should obey is because an upright person
  204. when he distributes software encourages other people to share it further.
  205.  
  206. BYTE: In a sense you are enticing people into this mode of thinking by
  207. providing all of these interesting tools that they can use but only if they
  208. buy into your philosophy.
  209.  
  210. Stallman: Yes.  You could also see it as using the legal system that
  211. software hoarders have set up against them.  I'm using it to protect the
  212. public from them.
  213.  
  214. BYTE: Given that manufacturers haven't wanted to fund the project, who do
  215. you think will use the GNU system when it is done?
  216.  
  217. Stallman: I have no idea, but it is not an important question.  My purpose
  218. is to make it possible for people to reject the chains that come with
  219. proprietary software.  I know that there are people who want to do that.
  220. Now, there may be others who don't care, but they are not my concern.  I
  221. feel a bit sad for them and for the people that they influence.  Right now a
  222. person who perceives the unpleasantness of the terms of proprietary
  223. software feels that he is stuck and has no alternative except not to use a
  224. computer.  Well, I am going to give him a comfortable alternative.
  225.     Other people may use the GNU system simply because it is technically
  226. superior.  For example, my C compiler is producing about as good a code as I
  227. have seen from any C compiler.  And GNU EMACS is generally regarded as being
  228. far superior to the commercial competition.  And GNU EMACS was not funded by
  229. anyone either, but everyone is using it.  I therefore think that many people
  230. will use the rest of the GNU system because of its technical advantages.
  231. But I would be doing a GNU system even if I didn't know how to make it
  232. technically better because I want it to be socially better.  The GNU project
  233. is really a social project.  It uses technical means to make a change in
  234. society.
  235.  
  236. BYTE: Then it is fairly important to you that people adopt GNU.  It is not
  237. just an academic exercise to produce this software to give it away to
  238. people.  You hope it will change the way the software industry operates.
  239.  
  240. Stallman: Yes.  Some people say no one will ever use it because it doesn't
  241. have some attractive corporate logo on it, and other people say that they
  242. think it is tremendously important and everyone's going to want to use it.
  243. I have no way of knowing what is really going to happen.  I don't know any
  244. other way to try to change the ugliness of the field that I find myself in,
  245. so this is what I have to do.
  246.  
  247. BYTE: Can you address the implications?  You obviously feel that this is an
  248. important political and social statement.
  249.  
  250. Stallman: It is a change.  I'm trying to change the way people approach
  251. knowledge and information in general.  I think that to try to own knowledge,
  252. to try to control whether people are allowed to use it, or to try to stop
  253. other people from sharing it, is sabotage.  It is an activity that benefits
  254. the person that does it at the cost of impoverishing all of society.  One
  255. person gains one dollar by destroying two dollars' worth of wealth.  I think
  256. a person with a conscience wouldn't do that sort of thing except perhaps if
  257. he would otherwise die.  And of course the people who do this are fairly
  258. rich; I can only conclude that they are unscrupulous.  I would like to see
  259. people get rewards for writing free software and for encouraging other
  260. people to use it.  I don't want to see people get rewards for writing
  261. proprietary software because that is not really a contribution to society.
  262. The principle of capitalism is the idea that people manage to make money by
  263. producing things and thereby are encouraged to do what is useful,
  264. automatically, so to speak.  But that doesn't work when it comes to owning
  265. knowledge.  They are encouraged to do not really what's useful, and what
  266. really is useful is not encouraged.  I think it is important to say that
  267. information is different from material objects like cars and loaves of
  268. bread because people can copy it and share it on their own and, if nobody
  269. attempts to stop them, they can change it and make it better for
  270. themselves.  That is a useful thing for people to do.  This isn't true of
  271. loaves of bread.  If you have one loaf of bread and you want another, you
  272. can't just put your loaf of bread into a bread copier.  you can't make
  273. another one except by going through all the steps that were used to make
  274. the first one.  It therefore is irrelevant whether people are permitted to
  275. copy it--it's impossible.
  276.    Books were printed only on printing presses until recently.  It was
  277. possible to make a copy yourself by hand, but it wasn't practical because
  278. it took so much more work than using a printing press.  And it produced
  279. something so much less attractive that, for all intents and purposes, you
  280. could act as if it were impossible to make books except by mass producing
  281. them.  And therefore copyright didn't really take any freedom away from the
  282. reading public.  There wasn't anything that a book purchaser could do that
  283. was forbidden by copyright.
  284.    But this isn't true for computer programs.  It's also not true for tape
  285. cassettes.  It's partly false now for books, but it is still true that for
  286. most books it is more expensive and certainly a lot more work to Xerox them
  287. than to buy a copy, and the result is still less attractive.  Right now we
  288. are in a period where the situation that made copyright harmless and
  289. acceptable is changing to a situation where copyright will become
  290. destructive and intolerable.  So the people who are slandered as "pirates"
  291. are in fact the people who are trying to do something useful that they have
  292. been forbidden to do.   The copyright laws are entirely designed to help
  293. people take complete control over the use of some information for their own
  294. good.  But they aren't designed to help people who want to make sure that
  295. the information is accessible to the public and stop others from depriving
  296. the public.  I think that the law should recognize a class of works that are
  297. owned by the public, which is different from public domain in the same
  298. sense that a public park is different from something found in a garbage
  299. can.  It's not there for anybody to take away, it's there for everyone to
  300. use but for no one to impede.  Anybody in the public who finds himself being
  301. deprived of the derivative work of something owned by the public should be
  302. able to sue about it.
  303.  
  304. BYTE: But aren't pirates interested in getting copies of programs because
  305. they want to use those programs, not because they want to use that
  306. knowledge to produce something better?
  307.  
  308. Stallman: I don't see that that's the important distinction.  More people
  309. using a program means that the program contributes more to society.  You
  310. have a loaf of bread that could be eaten either once or a million times.
  311.  
  312. BYTE: Some users buy commercial software to obtain support.  How does your
  313. distribution scheme provide support?
  314.  
  315. Stallman: I suspect that those users are misled and are not thinking
  316. clearly.  It is certainly useful to have support, but when they start
  317. thinking about how that has something to do with selling software or with
  318. the software being proprietary, at that point they are confusing
  319. themselves.  There is no guarantee that proprietary software will receive
  320. good support.  Simply because sellers say that they provide support, that
  321. doesn't mean it will be any good.  And they may go out of business.  In fact,
  322. people think that GNU EMACS has better support than commercial EMACSes.  One
  323. of the reasons is that I'm probably a better hacker than the people who
  324. wrote the other EMACSes, but the other reason is that everyone has sources
  325. and there are so many people interested in figuring out how to do things
  326. with it that you don't have to get your support from me.  Even just the free
  327. support that consists of my fixing bugs people report to me and
  328. incorporating that in the next release has given people a good level of
  329. support.  You can always hire somebody to solve a problem for you, and when
  330. the software is free you have a competitive market for the support.  You can
  331. hire anybody.  I distribute a service list with EMACS, a list of people's
  332. names and phone numbers and what they charge to provide support.
  333.  
  334. BYTE: Do you collect their bug fixes?
  335.  
  336. Stallman: Well, they send them to me.  I asked all the people who wanted to
  337. be listed to promise that they would never ask any of their customers to
  338. keep secret whatever they were told or any changes they were given to the
  339. GNU software as part of that support.
  340.  
  341. BYTE: So you can't have people competing to provide support based on their
  342. knowing the solution to some problem that somebody else doesn't know.
  343.  
  344. Stallman: No.  They can compete based on their being clever and more likely
  345. to find the solution to your problem, or their already understanding more
  346. of the common problems, or knowing better how to explain to you what you
  347. should do.  These are all ways they can compete.  They can try to do better,
  348. but they cannot actively impede their competitors.
  349.  
  350. BYTE: I suppose it's like buying a car.  You're not forced to go back to the
  351. original manufacturer for support or continued maintenance.
  352.  
  353. Stallman: Or buying a house--what would it be like if the only person who
  354. could ever fix problems with your house was the contractor who built it
  355. originally?  That is the kind of imposition that's involved in proprietary
  356. software.  People tell me about a problem that happens in UNIX.  Because
  357. manufacturers sell improved versions of UNIX, they tend to collect fixes
  358. and not give them out except in binaries.  The result is that the bugs don't
  359. really get fixed.
  360.  
  361. BYTE: They're all duplicating effort trying to solve bugs independently.
  362.  
  363. Stallman: Yes.  Here is another point that helps put the problem of
  364. proprietary information in a social perspective.  Think about the liability
  365. insurance crisis.  In order to get any compensation from society, an injured
  366. person has to hire a lawyer and split the money with that lawyer.  This is a
  367. stupid and inefficient way of helping out people who are victims of
  368. accidents.  And consider all the time that people put into hustling to take
  369. business away from their competition.  Think of the pens that are packaged
  370. in large cardboard packages that cost more than the pen--just to make sure
  371. that the pen isn't stolen.  Wouldn't it be better if we just put free pens
  372. on every street corner?  And think of all the toll booths that impede the
  373. flow of traffic.  It's a gigantic social phenomenon.  People find ways of
  374. getting money by impeding society.  Once they can impede society, they can
  375. be paid to leave people alone.  The waste inherent in owning information
  376. will become more and more important and will ultimately make the difference
  377. between the utopia in which nobody really has to work for a living because
  378. it's all done by robots and a world just like ours where everyone spends
  379. much time replicating what the next fellow is doing.
  380.  
  381. BYTE: Like typing in copyright notices on the software.
  382.  
  383. Stallman: More like policing everyone to make sure that they don't have
  384. forbidden copies of anything and duplicating all the work people have
  385. already done because it is proprietary.
  386.  
  387. BYTE: A cynic might wonder how you earn your living.
  388.  
  389. Stallman: From consulting.  When I do consulting, I always reserve the right
  390. to give away what I wrote for the consulting job.  Also, I could be making
  391. my living by mailing copies of the free software that I wrote and some that
  392. other people wrote.  Lots of people send in $150 for GNU EMACS, but now this
  393. money goes to the Free Software Foundation that I started.  The foundation
  394. doesn't pay me a salary because it would be a conflict of interest.
  395. Instead, it hires other people to work on GNU.  As long as I can go on
  396. making a living by consulting I think that's the best way.
  397.  
  398. BYTE: What is currently included in the official GNU distribution tape?
  399.  
  400. Stallman: Right now the tape contains GNU EMACS (one version fits all
  401. computers); Bison, a program that replaces YACC; MIT Scheme, which is
  402. Professor Sussman's super-simplified dialect of LISP; and Hack, a
  403. dungeon-exploring game similar to Rogue.
  404.  
  405. BYTE: Does the printed manual come with the tape as well?
  406.  
  407. Stallman: No.  Printed manuals cost $15 each or copy them yourself.  Copy
  408. this interview and share it, too.
  409.  
  410. BYTE: How can you get a copy of that?
  411.  
  412. Stallman: Write to the Free Software Foundation, 675 Massachusetts Ave.,
  413. Cambridge, MA 02139.
  414.  
  415. BYTE: What are you going to do when you are done with the GNU system?
  416.  
  417. Stallman: I'm not sure.  Sometimes I think that what I'll go on to do is the
  418. same thing in other areas of software.
  419.  
  420. BYTE: So this is just the first of a whole series of assaults on the
  421. software industry?
  422.  
  423. Stallman: I hope so.  But perhaps what I'll do is just live a life of ease
  424. working a little bit of the time just to live.  I don't have to live
  425. expensively.  The rest of the time I can find interesting people to hang
  426. around with or learn to do things that I don't know how to do.
  427.  
  428. Editorial Note: BYTE holds the right to provide this interview on BIX but
  429. will not interfere with its distribution.
  430.  
  431. Richard Stallman, 545 Technology Square, Room 703, Cambridge, MA 02139.
  432. Copyright (C) 1986 Richard Stallman.  Permission is granted to make and
  433. distribute copies of this article as long as the copyright and this notice
  434. appear on all copies.
  435.